/**
 * Modes are a way to define "profiles" for your Robo session. Each with its own config(s), envionment variables, and code.
 *
 * ```ts
 * import { Mode } from 'robo.js'
 *
 * // Get the current mode
 * const mode = Mode.get()
 *
 * // Check if the current mode is "dev"
 * if (Mode.is('dev')) {
 *  // Do something
 * }
 *
 * // Colorize text based on the current mode
 * console.log(Mode.color('Hello, world!'))
 * ```
 *
 * Everything is granular. You can even run multiple modes at the same time!
 *
 * [**Learn more:** Mode](https://robojs.dev/robojs/mode)
 */
declare const Mode: Readonly<{
    color: typeof colorMode;
    get: typeof get;
    is: typeof is;
}>;
/**
 * @internal
 */
declare function getModeColor(mode: string): (string: string) => string;
/**
 * @internal
 */
declare function setMode(mode: string): {
    shardModes: () => void;
};
/**
 * Returns the color function for the current mode.
 * This is used to colorize logs based on the mode when multiple exist.
 */
declare function colorMode(text: string): string;
/**
 * The current mode this Robo instance is running in.
 * This is set by the `--mode` CLI flag.
 *
 * Defaults to `production` for `robo start` and `development` for `robo dev`.
 */
declare function get(): string;
/**
 * Checks if the current mode matches the provided mode.
 *
 * @param mode The mode to check against.
 * @returns `true` if the current mode matches the provided mode.
 */
declare function is(mode: string): boolean;

export { Mode, colorMode, getModeColor, setMode };
